package cc.loach.homekit.hap.controlled.device.loach._lightbulb._light._accessoryinformation;


import cc.loach.homekit.hap.controlled.device.loach._lightbulb._light._accessoryinformation.properties.Identify;
import cc.loach.homekit.hap.controlled.device.loach._lightbulb._light._accessoryinformation.properties.Model;
import cc.loach.homekit.hap.typedef.accessory.HapService;
import cc.loach.xiot.spec.definition.urn.ServiceType;
import cc.loach.homekit.hap.controlled.device.loach._lightbulb._light._accessoryinformation.properties.FirmwareRevision;
import cc.loach.homekit.hap.controlled.device.loach._lightbulb._light._accessoryinformation.properties.Manufacturer;
import cc.loach.homekit.hap.controlled.device.loach._lightbulb._light._accessoryinformation.properties.Name;
import cc.loach.homekit.hap.controlled.device.loach._lightbulb._light._accessoryinformation.properties.SerialNumber;


/**
 * 配件信息
 */
public class AccessoryInformation extends HapService {

    public static final int IID = 1;
    public static final String TYPE = "urn:homekit-spec:service:accessory-information:0000003e:loach:light:1";

    public AccessoryInformation() {
        super(IID, new ServiceType(TYPE));
        super.properties().put(Identify.IID, new Identify());
        super.properties().put(Manufacturer.IID, new Manufacturer());
        super.properties().put(Model.IID, new Model());
        super.properties().put(Name.IID, new Name());
        super.properties().put(SerialNumber.IID, new SerialNumber());
        super.properties().put(FirmwareRevision.IID, new FirmwareRevision());
    }

    /**
     * Property: 認證
     */
    public Identify _identify() {
        return (Identify) properties().get(Identify.IID);
    }

    /**
     * Property: 生产商
     */
    public Manufacturer _manufacturer() {
        return (Manufacturer) properties().get(Manufacturer.IID);
    }

    /**
     * Property: 模型
     */
    public Model _model() {
        return (Model) properties().get(Model.IID);
    }

    /**
     * Property: 名称
     */
    public Name _name() {
        return (Name) properties().get(Name.IID);
    }

    /**
     * Property: 序列号
     */
    public SerialNumber _serialNumber() {
        return (SerialNumber) properties().get(SerialNumber.IID);
    }

    /**
     * Property: 固件版本
     */
    public FirmwareRevision _firmwareRevision() {
        return (FirmwareRevision) properties().get(FirmwareRevision.IID);
    }

}
